import Vue from 'vue';
import VueRouter from 'vue-router';
import Home from '../views/Home.vue';
import Login from '../views/Login.vue';
import Welcome from '../views/Welcome.vue';
import Users from '../views/users/user.vue';
import Rights from '../views/Rights.vue';
import Roles from '../views/Roles.vue';
import Cate from '../views/goods/Cate.vue';
import Params from '../views/goods/Params.vue';
import List from '../views/goods/List.vue';
import Add from '../views/goods/Add.vue';
import Order from '../views/Order.vue';
import Report from '../views/Report.vue';

Vue.use(VueRouter);

const routes = [
  {
    path: '/',
    redirect: '/login',
  },
  {
    path: '/login',
    name: 'Login',
    component: Login,
  },
  {
    path: '/home',
    name: 'Home',
    component: Home,
    redirect: '/welcome',
    children: [
      { path: '/welcome', name: 'Welcome', component: Welcome },
      { path: '/users', name: 'Users', component: Users },
      { path: '/rights', name: 'Rights', component: Rights },
      { path: '/roles', name: 'Roles', component: Roles },
      { path: '/categories', name: 'Cate', component: Cate },
      { path: '/params', name: 'Params', component: Params },
      { path: '/goods', name: 'List', component: List },
      { path: '/goods/add', name: 'Add', component: Add },
      { path: '/orders', name: 'Order', component: Order },
      { path: '/reports', name: 'Report', component: Report },
    ],
  },
];

const router = new VueRouter({
  routes,
});

// 挂载路由导航首位
router.beforeEach((to, from, next) => {
  // to 将要访问的路径
  // from 代表从哪个路径跳转而来
  // next 是一个函数，表示放行
  // next() 放行  next('/login') 表示强制跳转

  // 如果要访问的路径是登录页面，就直接放行
  if (to.path === '/login') return next();
  // 获取token
  const tokenStr = window.sessionStorage.getItem('token');
  // 如果tokenStr是一个空的字符串，就直结跳转至登录页面
  if (!tokenStr) return next('/login');
  // 如果成功拿到了token值并且token 里面有内容就可以放行，进行下一步操作，跳转至Home页面
  next();
});

export default router;
